跳到主要内容

签名说明

由于 XT 需要为第三方平台提供一些开放接口,因此需要考虑接口的数据安全问题,例如数据是否被篡改、数据是否过期、数据是否可以重复提交,以及在一定时间内访问接口的频率等。其中,数据是否被篡改最为重要。


规则

  1. AppKey & SecretKey 离线分发 appkey 和 secretkey。针对不同的调用方,提供不同的 appkey 和 secretkey。

  2. Timestamp 添加时间戳,其值应为发送请求时的 unix 时间戳(毫秒)。根据此值计算数据的有效时间。

  3. Signature 为所有数据添加签名信息。

  4. RecvWindow 有效时间相对简单,固定为某个值。例如,在相同的 api 和 appid 下,数据在 10 分钟内有效。这里可以进一步优化为单个 api 的有效时间不同。

    • 服务器在收到请求时判断时间戳。最多 60 秒,默认 5 秒
    • 如果是在 5000 毫秒前发送的,请求将被视为无效。
    • 可以通过发送可选参数 recvWindow 来自定义此时间窗口值。
    • 如果服务器计算出客户端时间戳比服务器时间_超前_一秒以上,服务器也会拒绝该请求。

    ⚠️ 不建议使用超过 5 秒的 RecvWindow。

  5. Algorithms 添加算法(签名方法/算法)。用户的签名计算基于 HSC,默认使用 HmacSHA256。支持的协议:

    • HmacMD5
    • HmacSHA1
    • HmacSHA224
    • HmacSHA256(默认)
    • HmacSHA384
    • HmacSHA512

示例

名称必填示例描述
validate-appkeytruedbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83
validate-timestamptrue1641446237201
validate-signaturetrue0a7d0b5e802eb5e52ac0cfcd6311b0faba6e2503a9a8d1e2364b38617877574d
validate-recvwindowfalse5000(毫秒)
validate-algorithmsfalseHmacSHA256默认:HmacSHA256。支持:HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512
api-versionfalse1.0保留字段,API 版本号
validate-signversionfalse1.0保留字段,签名版本号